The present invention relates to a system for user-customizing a natural language menu command system.
In general, the task of writing a natural language interface to some target computer system involves writing a natural language grammar and a corresponding lexicon and a set of semantic translations to the target system. This process has traditionally been a manual one requiring a grammar specialist and weeks or months or even years or work. Furthermore, the interface that results is not portable to new domains, not robust with respect to changes in the target system, not easy to debug, and may not cover the target system (a proof that it does so may be extremely difficult). The invention described here automates the process of generating an interface in the special case of relational databases and in the context of a menu-based natural language understanding system. In essence, the invention involves parameterizing a core grammar, lexicon and set of translations so that the user specifies only information that includes what database tables (relations and views) he wants covered, what table access rights (retrieved, insert, . . . ) the interface should allow, what joins he wants the grammar to explicitly support, what attributes are numeric and computable, etc.
The ADVANTAGES of this invention are that an end user can construct his own interface knowing nothing about grammars and lexicons so no specialist is required. The process of specifying the parameters to the MAKE-PORTABLE-INTERFACE routine takes minutes, not weeks or months. The technique is portable across domains. The user can control precisely what tables to include, etc and so can control the coverage of the natural language interface. The interface is easy to change if the user changes table descriptions or adds or deletes tables. Finally, a given core grammar can be constructed to probably cover any subportion of a target relational database interface language. And it can be guaranteed to be bug-free, since it is easy to validate the parameters to the MAKE-PORTABLE-INTERFACE routine and prove it correct.
The significance of this invention is that it makes it possible, for a MUCH broader class of users and applications, to use menu-based natural language interfaces to databases.
Natural language interfaces to computer systems are not in common use today for two main reasons: they are difficult to use and expensive to build and maintain. A companion patent application described a particular grammar-driven, menu-based software tool which, when used with a semantic grammar and lexicon allows a naive user to construct understandable sentences using a pointing device. That patent application solves many of the problems having to do with "ease-of-use" of natural language interfaces. The present invention solves the second problem, of making natural language interfaces easy to build and maintain, in the very important special case of relational databases and in the context of a grammar-driven, menu-based interface drive. (The technique can be generalized to non-relational database applications and probably to applications other than database applications.
Specifically, this invention addresses the following problems: Existing natural language interfaces to databases are seldom portable; almost all are application-specific. They take from man-weeks to man-years for a specialist to build. They are not robust with regard to changes in the data they are interfacing to. They are hard to debug. And there is no established way to guarantee that they cover the desired data or fit the functionality of the target computer system. So, using existing technology, natural language interfaces to databases will be built only for important database applications. These problems will haunt even NLMENU-driven, manually constructed interfaces, though, because simpler grammars can be used, a grammar specialist should be able to complete an interface in a few weeks, (but he would still be required to maintain the interface when changes occurred to the structure of the database).
The invention described here solves the problems listed above. END-USERS can build natural language interfaces to their own data; the interfaces are robust with respect to database changes; they can be customized to cover user-specified subsets of data and functionality in a precise manner; and they are provably correct.
In this section we will briefly discuss the general state of natural language interfaces to software systems and database systems in particular. Then we will briefly discuss menu-based grammar-driven interfaces. Then we will relate these to the invention and discuss known prior art as it concerns automatically generating interfaces to a database.